<?php
namespace Admin\Controller;

use Think\Controller;
use Admin\Model\CityModel;
use Admin\Model\ProvinceModel;

/**
 * 开放城市类
 */
class CityController extends Controller
{

	function __construct(){
        parent::__construct();
        $this->City = new CityModel();  
	}

	/**
	 * 获取开放城市
	 * @return $open_city 2维数组 包含开放城市信息和省份名字
	 */
	public function get_open_city(){
		$Province=new ProvinceModel();
		$province=$Province->get_province();
		// 遍历找出开放城市
		foreach ($province as $key => $value) {
			$open_city[$key]["city"]=$this->City->get_city($value['pid']);
			$open_city[$key]["province"]=$value['province'];
		}		
		if(!$open_city)
			returnMobileJson(201,'没有数据');
		else
			returnMobileJson(200,'获取成功',$open_city);
	}

	/**
	 * 展示添加开放城市页面
	 * @return array $province 省份列表
	 */
	public function get_province_lib(){
		$Province=new ProvinceModel();   
		$province=$Province->get_province_lib();
		returnMobileJson(200,'获取成功',$province);
	}

	/**
	 * 获取该省份的城市
	 * @return $city array 该省份的城市信息
	 */
	public function get_city_lib(){
		$pr_id=$_POST['pr_id'];
		if(empty($pr_id)){
			returnMobileJson(201,'参数错误');
		}
		$city=$this->City->get_city_lib($pr_id);
		returnMobileJson(200,'获取成功',$city);
	}

	/**
	 * 添加开放城市
	 * @param string $city 开放城市名称
	 * @param string $pr_province 此开放城市的省份名称
	 * @param array $opened_city 此省份的所以开放城市
	 * @param array $pro_data 没有省份添加省份的信息
	 * @param string $pid 添加省份返回的省份ID
	 */
	public function set_city(){
		$city=$_POST['ci_city'];
		$pr_province=$_POST['pr_province'];
		if( empty($city) || empty($pr_province)){
			returnMobileJson(201,'参数错误');
		}
		
		//先判断该城市的省份是否开放了
		$Province=new ProvinceModel();   
		$province=$Province->get_province();
		foreach ($province as $key => $value) {
			// 再判断是否已经添加了此城市,根据此省份的开放城市是否存在此城市名
			$opened_city=$this->City->get_city($value['pid']);
			foreach ($opened_city as $open_key => $open_value) {
				if($open_value['city']==$city){
					returnMobileJson(202,'该城市已经添加');
				}
			}

			if($pr_province==$value['province']){
				$data = array('pid' => $value['pid'], 'city'=>$city, 'city_date' => date('Y-m-d H:i:s'));
				if($this->City->set_city($data))
					returnMobileJson(200,'添加成功');
				else
					returnMobileJson(203,'添加失败');
			}
		}
		// 没有此省份则先添加省份
		$pro_data=array( 'province'=>$pr_province, 'p_date'=>date('Y-m-d H:i:s'));	
		if($pid=$Province->set_province($pro_data)){
			// 添加省份成功后再添加城市		
				$data = array('pid' => $pid, 'city'=>$city, 'city_date' => date('Y-m-d H:i:s'));
				if($this->City->set_city($data))
					returnMobileJson(200,'添加成功');
				else
					returnMobileJson(203,'添加失败');
		}else{
			returnMobileJson(203,'添加失败');
		}
				
	}






}